User identification and identification-based processing for a virtual reality device

ABSTRACT

A virtual reality device is configured to generate realistic images, sounds and other sensations that replicate a real or imagined environment for a user. As a first user interacts with the device, first user interaction data representing interactions between the first user and the device during a first user visit are recorded. A first unique visitor fingerprint is generated based on the first user interaction data. As a second user interacts with the device, second user interaction data representing interactions between the second user and the device during a second user visit that is different from the first user visit are recorded. A second unique visitor fingerprint is generated based on the second user interaction data. The first and second unique visitor fingerprints are compared to determine whether the second user is the same as the first user. Based on the determination, one or more functions can be performed.

FIELD OF THE DISCLOSURE

This disclosure relates generally to digital media processing, and moreparticularly, to techniques for identifying a user of a virtual realitydevice and performing one or more functions based on the identifieduser.

BACKGROUND

Virtual reality (VR) devices are machines that use hardware and softwareto generate realistic images, sounds and other sensations that replicatea real or imagined environment. Virtual reality devices provide animmersive experience that allows users to, for example, look around theenvironment, manipulate objects in the environment, and hear sounds inthe environment. With a system incorporating one or more VR devices, VRapplications and other components, a user can virtually interact withthe environment via one or more user interfaces of the system. Userinterfaces that are commonly found in VR systems may include, forexample, a computer display, a projection screen, a VR headset, a VRhand glove, a treadmill, or any combination of these or othercomponents. Additionally, sensors and cameras can be integrated into thesystem to detect user inputs, such as head and hand gestures, forallowing the user to virtually interact with the environment. At leastsome of these interfaces are specific to VR devices and are nottypically available with other types of electronic devices, such aspersonal computers, smartphones, or tablets. Therefore, new techniquesare needed for processing information received through interfaces thatare specific to systems incorporating VR devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are not intended to be drawn to scale. In thedrawings, each identical or nearly identical component that isillustrated in various figures is represented by a like numeral.

FIG. 1 shows an example system for identifying a user of a virtualreality device and performing one or more functions based on theidentified user, in accordance with an embodiment of the presentdisclosure.

FIG. 2 illustrates a detailed view of the example system of FIG. 1including a VR device, in accordance with an embodiment of the presentdisclosure.

FIG. 3 illustrates another detailed view of the example system of FIG. 1including a server, in accordance with an embodiment of the presentdisclosure.

FIG. 4A is a flow diagram of an example methodology for identifying auser of a VR device, in accordance with an embodiment of the presentdisclosure.

FIG. 4B is a flow diagram of an example methodology for generating afirst or second unique visitor fingerprint, in accordance with anembodiment of the present disclosure.

FIG. 5 is a flow diagram of several example methodologies for performingvarious functions based on an identified user of a VR device, inaccordance with an embodiment of the present disclosure.

FIG. 6 is a block diagram representing an example computing device thatmay be used to perform any of the techniques as variously described inthis disclosure.

DETAILED DESCRIPTION

In accordance with an embodiment of the present disclosure, techniquesare disclosed for identifying a user of a VR device and performing oneor more functions based on the identified user. The disclosed techniquesare particularly useful for uniquely identifying a user of the VR devicein situations where no personally identifiable information (PII) isavailable for the user. User interactions with VR devices and VRapplications can be collected and recorded during so-called user visits.A user visit is the presence of a user interacting with the VR device orapplication over a given period of time. Once obtained, the userinteractions can be statistically analyzed to identify patterns thatcorrespond to a particular, unique user. For instance, statisticsrepresenting interactions between a user and one or more VR devices orapplications can be tabulated on a per user visit basis. Suchinteractions can include any inputs received by the VR device orapplication via interfaces between the user and one or more componentsof the system, such as sensors, switches/buttons, and cameras. Usingthis information, the interactions between the user and the VR device orapplication are statistically analyzed to generate a unique visitorfingerprint, as described in further detail below. The user of the VRdevice or application is identified by comparing this information toprior interactions with the device by the same user or other users.Similarities found during the comparison form the basis for uniquelyidentifying the user during a given visit. Once the user has beenidentified in this manner, a number of functions can be performedincluding personalizing and optimizing the user's experience with the VRdevice or application, enabling cross-device channel attribution, andcombining information about a particular user collected from differentVR devices or applications.

To this end, and in accordance with an embodiment of the presentdisclosure, a VR device is configured to generate realistic images,sounds and other sensations that replicate a real or imaginedenvironment for a user. As a first user interacts with the VR device ora VR application running on the device, first user interaction datarepresenting a first plurality of interactions between the first userand the VR device or application during a first user visit are recorded.A first unique visitor fingerprint is generated based on the first userinteraction data. Further, as a second user interacts with the VR device(or another VR device or application), second user interaction datarepresenting a second plurality of interactions between the second userand the VR device or application during a second user visit that isdifferent from the first user visit are recorded. The second user may bethe same as the first user, or the second user may be a different user.In either case, a second unique visitor fingerprint is generated basedon the second user interaction data. The first and second unique visitorfingerprints are compared to determine whether or not the second user isthe same as the first user or has at least some characteristics incommon with the first user. Based on the determination, one or morefunctions can be performed, as will be described in further detailbelow. For example, an experience for the user can be personalized orone or more user preferences can be applied to the VR device orapplication to provide a better experience. Numerous configurations andvariations will be apparent in light of this disclosure.

Overview

Virtual reality devices provide interfaces through which a user sendsinput and receives output. Through these interfaces, information aboutuser behavior and user-specified device settings can be obtained andused to uniquely identify the user. For example, since VR headsets areworn on the user's head, the device can detect head movements, such asswivels, nods, image pans (e.g., looking from side to side) and imagefocus (e.g., holding the head steady while looking in a particulardirection). Some VR devices can include sensors worn on the user'shand(s) that detect hand movements, such as waves, taps, selects(picking something up virtually), pushes and pulls, thumbs up or down,hand tilt, throwing motions, clapping, sign language and other gestures.Cameras mounted on some VR devices can be used to acquire visualinformation about the user's physical environment (e.g., location) andmovements within that environment. Furthermore, some VR devices candetect eye movement or other biometric information, such as physicalfingerprints, sweat, eye color, respiratory rate, or heart rate.Alternatively or in addition to the above-mentioned interfaces,information can be collected about user-specified settings provided bythe VR device or application, such as head movement sensitivity, scrollspeed, interface mappings, headphone volume, microphone volume, andscreen brightness. Another example includes information about anapplication which provides the user with an option to dock (place) afile menu at the top, bottom, right or left side of a display screen(i.e., the docking location may be specific to some users). As such, VRdevices and applications can provide metrics for generating uniquevisitor fingerprints, which can be used to uniquely identify usersthrough their interactions via VR-specific interfaces.

In accordance with an embodiment of the present disclosure, statisticsrelating to distinct user visits on a VR device can be used to identifyunique users, even in the absence of personally identifiable informationabout the user. From this information, a so-called visitor fingerprintcan be generated for each unique user. Fingerprinting is the process ofanalyzing a user's settings, environment, and interactions with anelectronic device, such as a VR device, or applications running on thedevice, to determine a set of criteria that uniquely distinguishes oneuser from another when the user does not provide personally identifiableinformation, such as an ID number, username or email address.Fingerprinting is useful when a device is shared among multiple usersbecause it facilitates identification of a particular user during agiven visit, even if the user is anonymously using the device orapplication. Fingerprinting is also useful when a single user usesmultiple devices because it facilitates identification of a particularuser regardless of which device is in use. For example, a combination ofVR device and application settings, and behavioral acts such as head andhand movements, may be used to generate a fingerprint associated with aparticular, unique user of the VR device. In another example, a visitorfingerprint may be generated using device features, such as VR devicedisplay, audio and sensitivity settings, and physical interactions withthe device, such as the angle at which a VR headset is held and theswipe speed of the user using a VR hand glove.

A visitor fingerprint can be used to link information about the distinctuser visits together, so that information about a prior visit with aparticular user can be used to enhance the performance of a current orsubsequent visit with the same user. For example, if the interactionsbetween a user and a VR device or application in two user visits havesimilar statistics, then it is likely that the same user was involved inboth visits. In this case, any number of different functions can beperformed when the user is identified based on prior interactions withthe VR device or application. For instance, according to an embodimentof the present disclosure, the VR device or application can bepersonalized for a particular user once the user has been identified. Inone example, device- or application-specific settings, such as screenbrightness, audio volume, gameplay preferences, or other such settingscan be personalized by the user as desired. If only one user everinteracts with the VR device, then the personalized settings can bepersistent in the device, since no other users interact with the device.However, if multiple users interact with the same VR device, then thepersonalization may be different for each user. To ensure that thedevice is personalized for each user, the personalized settings can beautomatically selected once the user is identified.

Example System

FIG. 1 shows an example system 100 for identifying a user of a virtualreality device and performing one or more functions based on theidentified user, in accordance with an embodiment of the presentdisclosure. The system 100 includes a virtual reality device 110 and atleast one server 120 or other computing device, which can be separatefrom the VR device 110 or included in the VR device 110. One or moreusers 102 interact with the VR device 110 via one or more userinterfaces 112. The server 120 is configured to process various inputsto the VR device via the user interfaces 112 and generate statisticsrelating to the interactions between the user 102 and the VR device 110.These statistics can be used by the server 120 to provide a number ofservices, including but not limited to unique visitor identification,unique visitor stitching, success event pathing and attribution, visitorpersonalization, visitor customization and optimization, machinelearning, clustering and segmentation, as described in further detailbelow. Although in general the system 100 is designed to operate insituations where the identity of the user 102 is not known withcertainty, the system 100 can provide additional benefits where the user102 provides a form of positive identification, such as a username,identification number, email address, credit card number, or otherpersonally identifiable information (PII). However, it will beunderstood that the system 100 does not need PII to provide the servicesvariously described in this disclosure.

FIG. 2 illustrates a detailed view of the example VR device 110 of FIG.1, in accordance with an embodiment of the present disclosure. The VRdevice 110 includes one or more processors 130 configured to execute avirtual reality application 140. The VR application 140 is configured toreceive one or more user inputs 104 a, 104 b, . . . , 104 n, from theuser 102 via the user interface 112. The VR application 140 is furtherconfigured to receive and to display images via a graphical userinterface 142. Components of the user interface 112 can vary dependingon a particular application, but in general may include, for example,interfaces to one or more motion sensors 150 (e.g., sensors to detecthead or hand motion), one or more biometric sensors 160 (e.g., sensorsto detect heart rate, sweat, physical fingerprints, palm prints,retinas, voice prints, or other measurable human characteristics), oneor more cameras 170, and a treadmill 180 for detecting walking orrunning movements of the user 102. In addition to the user interface112, in some embodiments, the VR device 110 may include some or all ofthe corresponding hardware components (e.g., motion sensors, biometricsensors, cameras and a treadmill), although it will be understood thatany of these hardware components may be provided separately from the VRdevice 110. For example, the VR device 110 may be incorporated into a VRheadset having head motion sensors and cameras, while a VR hand glove,treadmill and at least some of the biometric sensors may be separatecomponents electronically coupled to the VR device 110 via wired orwireless connections. Numerous configurations of the VR device 110 willbe apparent in light of this disclosure.

The inputs 104 a-104 n from the user 102 to the VR device 110 via theuser interface 112, including inputs to the VR application 140, occurwhen the user 102 interacts with the VR device 110 to perform variousfunctions. For example, certain head movement inputs by the user 102(e.g., via a VR headset with integrated motion sensors) can cause the VRdevice 110 to change the scene so that the user can look around thevirtual environment in a natural manner. Likewise, certain hand movementinputs by the user 102 (e.g., via a VR hand glove with integrated motionsensors) can cause the VR device 110 to simulate the movement of objectsin the virtual environment as if the objects were actually beingmanipulated by the user 102. In another example, user inputs can bemapped to certain functions of the VR device 110. For instance, certainhead or hand movements may be mapped to changing the audio volume orscreen brightness of a VR headset, activating email, pausing or startinga game, scrolling between photos in an album or between pages of adocument, focusing on an advertisement or news headline, zooming adisplay, applying a rating, saving a document, closing a display window,taking a picture with a camera, answering a call, and so forth.

The interactions between the user 102 and the VR device 110 are measuredin a granular manner. For example, the interface with the motion sensors150 may be used to detect head nods (e.g., left, right, up and down headmovements), hand gestures (e.g., waves, taps, pickups or grabs, pushesand pulls, thumbs up or down, hand tilts, throws, claps, swipes, fingerpinches and sign language motions), physical fingerprints, voicecommands, eye movements (e.g., blink rate and gaze direction), heartrate, and any other characteristic of the user 102 that is measurable bythe VR device 110, including the speed or rate at which the interactionsoccur. More generally, the interactions between the user 102 and the VRdevice 110 can be detected, recorded and analyzed on the VR device 110,the server 120, or a combination of both using any suitable software andhardware. For example, the virtual reality application 140 may includeor be in communication with operating system software executing on theVR device 110, which permits the acquisition of data from the varioussensors, cameras, etc., via the user interface 112.

Data representing the interactions between the user 102 and the VRdevice 110, once captured or measured by the VR device 110, are sentfrom the VR device 110 to the server 120 for statistical analysis, whichis used to generate one or more visitor fingerprints 124, as describedbelow with respect to FIG. 3. In an embodiment, the interaction data aresent from the VR device 110 to the server 120 via a communicationsnetwork 122. The communications network 122 is configured to permit theVR device 110 and the server 120 to communicate electronically over anysuitable wired or wireless link.

FIG. 3 illustrates a detailed view of the example server 120 of FIG. 1,in accordance with an embodiment of the present disclosure. The server120 includes one or more processors 190 configured to execute aninteraction analysis application 192. The interaction analysisapplication 192 is configured to receive the interaction data from theVR device 110 via the communications network 122. The interactionanalysis application 192 is further configured to generate one or morevisitor fingerprints 124 based on the interaction data. The visitorfingerprints 124 represent distinctive usage patterns of the VR device110 by the user 102. For example, a particular sequence of interactions(e.g., head or hand gestures) alone or in combination with certainsettings of the VR device 110 (e.g., screen brightness or audio volume)can be analyzed to generate a pattern, referred to as a visitorfingerprint 124. Each visitor fingerprint 124 may uniquely identify aparticular user 102 such that different visitor fingerprints 124uniquely identify different users 102. If a particular visitorfingerprint 124 does not exist, it is created and stored in a databasefor comparison with subsequently generated visitor fingerprints. In thismanner, by comparing the statistics generated from the interaction datato a previously generated and stored visitor fingerprint 124, theinteraction analysis application 192 can estimate the identity of theuser 102 interacting with the VR device 110 during a given user visitfrom usage patterns, even if no personally identifiable information isotherwise available. For example, if the visitor fingerprint 124 of UserA indicates that the user typically rests his head in a right-leaningdirection, and the visitor fingerprint 124 of User B indicates that theuser typically rests her head in an upright position, then interactionswith the VR device 110 in which the user frequently holds his or herhead in an upright position may indicate that User B, rather than UserA, is actively using the VR device 110. In general, the moreinteractions that are measured, the more accurately the interactionanalysis application 192 estimates the identity of the user 102. If PIIis available, then the confidence that a particular user 102 is usingthe VR device 110 increases. In an embodiment, some or all of thefunctions performed by the interaction analysis application 192 mayinstead be performed by the VR device 110.

As discussed above with respect to FIG. 1, the statistics generated bythe interaction analysis application 192 from the interaction data canbe used to provide a number of services, including but not limited tounique visitor identification, unique visitor stitching, success eventpathing and attribution, visitor personalization, visitor customizationand optimization, machine learning, clustering and segmentation.

Unique Visitor Identification and Stitching

Once a visitor fingerprint 192 has been established, it can then be usedto differentiate between multiple users or to stitch together usersacross multiple VR devices. Stitching refers to a process of correlatingthe users of multiple devices based on interactions between the usersand the devices. For example, if a particular User A is identified asusing Device A and Device B by comparing visitor fingerprints obtainedfrom both devices, then the interactions between User A and Devices Aand B can be correlated across all devices. This can enable commonmetrics such as obtaining a unique user count (e.g., a common metric formost application is to determine how many people are using theapplication), determining the average number of users per VR device, anddetermining the average number of VR devices per user. For example, thetotal number of unique visitors for a given VR device can also be usedto calculate a global total number of unique visitors for a given typeof device (e.g., a total number of users of a particular model of VRdevice), for the manufacturer of the device (e.g., a total number ofusers of device manufactured by a particular company), or for a giventype of product (e.g., a total number of users of VR devices ingeneral). Visitor stitching can also be used to transfer or synchronizedata between multiple VR devices that are used by the same user(s).Examples of such data include application configuration, devicesettings, user preferences and application data (e.g., game status).Visitor stitching can also be used to augment the functionality of theVR devices, such as to provide advertising targeted to a particular useras the user interacts with different devices.

Success Event Pathing and Attribution

As visitors move between VR devices, it becomes challenging to identifythe entire path they have followed to measured success events. Visitorstitching across VR devices enables the complete paths to be discoveredand all channels to receive credit for their contribution to successevents. Device pathing is useful in VR applications. In an embodiment,an attribution engine can be configured to see the complete path theuser has taken to get to a specific success event. For example, perhapsa developer is trying to drive the user to downloading a new game. Let'ssay the user puts on headset 1 and uses app 1, app 2, and app 3. In eachof these apps, the user sees some kind of ad for the target game. In app1, it may be a banner ad. In app 2, it may be graffiti on the wall ofsome game. In app 3 it may be an in-app recommendation based on behaviorin that app. Next, the user puts on headset 2, which has a mobile phonemounted in a cardboard box. On headset 2, the user uses app4 and app2again. App 2 once again shows the graffiti for the target game, but app4does not contain any information that would push the user towards thetarget game. Finally, the user puts on headset 3, uses app 5 which showsan ad for the target game and clicks to download the game. Without thefull path and visitor stitching, the developer or marketer would giveall credit to the ad in app5 and may make poor decisions based on thisincomplete information (such as putting all available money into thatapp or ad) and may not get the results they hoped for. In reality,perhaps the graffiti ad in app2 was the biggest influencer, yet it didnot get any credit for the conversion and the marketer may not invest inother graffiti ads. With visitor stitching and cross device cross apppathing, the marketer can receive better information. For example, thefull path may include:

Device 1

-   -   a. App 1        -   i. Ad (shown 3 times)    -   b. App 2        -   i. Graffiti—viewed 5 times    -   c. App 3        -   i. Recommendation

Device 2

-   -   a. App 2        -   i. Ad (shown 2 times)    -   b. App 5

Device 3

-   -   a. App 5        -   i. Ad shown once    -   b. Conversion

Now all steps in the path can receive some credit. Different attributionalgorithms may divide the credit differently. For instance, it may beappropriate to give headset 1 and app 5 the most credit since it mayhave directly led to the conversion. The algorithm may also comparesimilar paths to determine that app 5 should not receive any credit atall. There was no recorded marketing effort—but that does notnecessarily mean that it should not receive credit. Perhaps it is a verysimilar game to the target game and it may have been the largestinfluencer despite the lack of a marketing touch point. Comparing toother paths can help to determine whether it was valuable or not.

Visitor Personalization

When a marketer or a developer can distinguish between users, they canalso personalize the experience to the user. For example, the marketermay segment users into experiences or customize the experience directlyto the specific user. They may change the advertising or experience toappeal more to the user and provide a better overall experience. Forinstance, one user may be presented with a more graphic experience thananother based on their visitor fingerprint and observed preferences.

Visitor Customization and Optimization

The VR application 140 or VR device 110 can optimize the experience forthe user 102 to provide a better experience. For example, differentusers may have different preferences such as head movement sensitivity.Many applications and devices allow users to create profiles for storingtheir setting preferences. If the VR application 140 or VR device 110 isable to uniquely identify users 102 and distinguish them from eachother, the application 140 can create preference profiles automaticallyand switch between them automatically so that each user 102 has apersonalized experience. Such personalization may be based, for example,on the way the user 102 interacts with the VR application 140 or the VRdevice 110. For example, if the user 102 always adjusts the volume to acertain level, the VR device 110 could automatically adjust the volumeonce the user 102 is identified during a subsequent visit or subsequentinteraction during a current visit. Other optimizations may include, forexample, changing the camera angle based on the neutral head position(e.g., if a person's neutral head position is to look more downward thanmost, it may be fatiguing to maintain a more upward posture in order tosee the primary content). The system 100 can detect the user's naturalneutral head position and automatically adjust the camera angle andinitialize an accelerometer and gyroscope to compensate for the user'snatural neutral head position, to present the primary content at thatangle. In another example, the VR device 110 or VR application 140 maybe optimized automatically by adjusting the head movement sensitivity(e.g., some users may nod more vigorously or subtly than others). Inanother example, just as many game controllers and phones allow fordiffering pressure sensitivities on the screen or buttons, the VR device110 or VR application 140 may be adjusted based on the speed anddistance of a nod or other head movement. Having to frequently repeatuncomfortable head movements could quickly fatigue the user. In anotherexample, cameras can be used to recognize the physical environment ofthe user and determine the identity of the user based on the recognizedenvironment. For example, if a user typically uses a VR device in a gameroom, the system may automatically recognize that the furniture andcolors of the room are the same for the current visit as for a priorvisit, and associate the users of both visits as being the same user.

Machine Learning, Clustering and Segmentation

As analytics systems correctly track interactions and associate thoseactions with unique identifiers, they enable the ability to analyze andcluster data based on the measured attributes. As VR gestures andinteractions are measured and appropriately correlated, it will enablemarketers to better understand and target their customers as well asenabling developers and manufactures to better understand how theirproducts are used.

Example Methodologies

FIG. 4A is a flow diagram of an example methodology 400 for identifyinga user of a virtual reality device, in accordance with an embodiment ofthe present disclosure. The methodology 400 may be performed, forexample, by the VR interaction analysis application 192 of FIG. 3, thevirtual reality application 140, or both in combination. The method 400includes receiving 402, by a computer processor and from at least onevirtual reality device, first user interaction data representing a firstplurality of interactions between a first user and the at least onevirtual reality device during a first user visit. The at least onevirtual reality device is configured to generate at least one ofrealistic images, sounds and other sensations that replicate a real orimagined environment. For example, the first user may interact with theVR device in any number of different ways, including moving a VR headsetto look around a virtual environment, moving a VR hand glove tomanipulate virtual objects in the environment, or selecting userpreferences for the VR device or an application executing on the device.The method 400 further includes generating 404, by the processor, afirst unique visitor fingerprint based on the first user interactiondata. The method 400 further includes receiving 406, by the processorand from the at least one virtual reality device, second userinteraction data representing a second plurality of interactions betweena second user and the at least one virtual reality device during asecond user visit that is different from the first user visit. Forexample, the second user may interact with the VR device in a mannerthat is similar to or distinct from the manner in which the first userpreviously interacted with the VR device. The method 400 furtherincludes generating 408, by the processor, a second unique visitorfingerprint based on the second user interaction data. It will beunderstood that any number of unique visitor fingerprints (third,fourth, etc.) may be generated and used in this method to furtherimprove the resolution and accuracy of the result. In some embodiments,only the first unique visitor fingerprint is needed, and the acts ofreceiving 406 and generating 408 may be bypassed. The method 400 furtherincludes comparing 410, by the processor, the first and second uniquevisitor fingerprints to determine 412 whether or not the second user isthe same as the first user based on the comparison. In the case whereonly the first unique visitor fingerprint is generated, the secondunique visitor fingerprint may include, for example, another visitorfingerprint generated at a prior time by a different user. For example,the comparison may yield information about whether the user moves hishead faster or slower than one or more other users. Thus, even upon thefirst visit by a particular user, the system could check with the serverand find that most people with similar head movement speeds prefer aspecific scroll setting, and the system may adjust the user's settingaccordingly.

FIG. 4B is a flow diagram of an example methodology 404, 408 forgenerating a first or second unique visitor fingerprint, in accordancewith an embodiment of the present disclosure. The method 404, 408includes generating 404, 408 the first or second unique visitorfingerprint based on the first user interaction data includesdetermining 450 one or more available use features to include in thevisitor fingerprint. The available use features are features that can beobtained, measured and collected from, for example, the VR device 110,and may include, for example, head movement, hand movement, eyemovement, biometric information, head movement detection sensitivity,scroll speed, user interface-to-function mappings, headphone volume,microphone volume, screen brightness, configuration settings,application settings, and behavior (e.g., in a given game, the user mayalways check his statistics first and his game inventory, second, etc.),or any combination of these use features.

The method 404, 408 further includes determining 452 which of theavailable features are useful. To be useful, a use feature may have asomewhat consistent value. For example, head angle may be quite usefulwhen it is unique to the user (e.g., the user tends to lean his headforward), or it may be less useful when the user tends to hold theirhead in various different angles (e.g., the head position of the user isnot consistent or predictable). However, even if the value of the usefeature is consistent, it may not be useful. For example, if a Booleansetting for a particular value is set to true for 99.9% of users, it'snot useful for uniquely identifying 99.9% of the users. However, such avalue may be very useful for fingerprinting when set to false for 99.9%of users.

The method 404, 408 further includes, for example, combining 454 theuseful use features into a fingerprint. For example, the combining 454may include generating an array of key-value pairs of the useful usefeature values. In another example, the combining 454 may includetranslating the useful use feature values into a bit string where eachbit represents a key and a specific value (these end up being extremelylong bit strings but make it trivial to determine how similar twofingerprints are). Other examples will be apparent in view of thisdisclosure.

As a combination of the last two points, the method 404, 408 furtherincludes finding 456 a subset of the use features that best describes arange over which comparison can be successfully made. The subset of usefeatures is used to compare the first and second visitor fingerprints.For example, if a timestamp when an application was launched is one ofthe use features, the timestamp would always make visitors lookdifferent since they could never start two sessions with the same timestamp. However, time of day may provide more useful information fordetermining unique visitors. This step may be accomplished, for example,using machine learning techniques. In some embodiments, the method 404,408 includes comparing 458 the probability that two or more visitorfingerprints belong to the same user to a threshold value, where if allof the visitor fingerprints surpass the threshold value, the confidencethat the visitor fingerprints belong to the same visitor increases.

In an embodiment, the first and second plurality of user interactionsincludes one or more behavioral acts of the first and second user,respectively, including but not limited to head movement, hand movement,eye movement, biometric information, head movement detectionsensitivity, scroll speed, user interface-to-function mappings,headphone volume, microphone volume, and screen brightness. It will beunderstood that any user input or behavioral act that can be detected bythe VR device may be considered a user interaction, depending on thecapabilities of the device.

FIG. 5 is a flow diagram of several example methodologies 500 forperforming various functions based on the first and second uniquevisitor fingerprints. In accordance with an embodiment of the presentdisclosure, the method 500 includes generating 502, by the processor, anestimated total number of unique users of the at least one virtualreality device based on the first and second unique visitorfingerprints. In another embodiment, the method 500 includes generating504, by the processor, an estimated average number of unique users ofeach virtual reality device based on the first and second unique visitorfingerprints. In yet another embodiment, the method 500 includesgenerating 506, by the processor, an estimated total number of virtualreality devices used by each unique user based on the first and secondunique visitor fingerprints. In yet another embodiment, the method 500includes generating 508, by the processor, a path representing a usagepattern by each unique user across two or more virtual reality devicesbased on the first and second unique visitor fingerprints. In yetanother embodiment, the method 500 includes personalizing 510, by theprocessor, an experience for the second user using the at least onevirtual reality device based on a determination that the second user isthe same as the first user. In yet another embodiment, the method 500includes applying 512, by the processor, one or more user preferencesfor the second user to the at least one virtual reality device based ona determination that the second user is the same as the first user.

FIG. 6 is a block diagram representing an example computing device 600that may be used to perform any of the techniques as variously describedin this disclosure. For example, the system 100 of FIG. 1, or anyportions thereof, and the methodologies of FIGS. 4 and 5, or anyportions thereof, may be implemented in the computing device 600. Thecomputing device 600 may be any computer system, such as a workstation,desktop computer, server, laptop, handheld computer, tablet computer(e.g., the iPad® tablet computer), mobile computing or communicationdevice (e.g., the iPhone® mobile communication device, the Android™mobile communication device, and the like), VR device or VR component(e.g., headset, hand glove, camera, treadmill, etc.) or other form ofcomputing or telecommunications device that is capable of communicationand that has sufficient processor power and memory capacity to performthe operations described in this disclosure. A distributed computationalsystem may be provided including a plurality of such computing devices.

The computing device 600 includes one or more storage devices 610 ornon-transitory computer-readable media 620 having encoded thereon one ormore computer-executable instructions or software for implementingtechniques as variously described in this disclosure. The storagedevices 610 may include a computer system memory or random accessmemory, such as a durable disk storage (which may include any suitableoptical or magnetic durable storage device, e.g., RAM, ROM, Flash, USBdrive, or other semiconductor-based storage medium), a hard-drive,CD-ROM, or other computer readable media, for storing data andcomputer-readable instructions or software that implement variousembodiments as taught in this disclosure. The storage device 610 mayinclude other types of memory as well, or combinations thereof. Thestorage device 610 may be provided on the computing device 600 orprovided separately or remotely from the computing device 600. Thenon-transitory computer-readable media 620 may include, but are notlimited to, one or more types of hardware memory, non-transitorytangible media (for example, one or more magnetic storage disks, one ormore optical disks, one or more USB flash drives), and the like. Thenon-transitory computer-readable media 620 included in the computingdevice 600 may store computer-readable and computer-executableinstructions or software for implementing various embodiments. Thecomputer-readable media 620 may be provided on the computing device 600or provided separately or remotely from the computing device 600.

The computing device 600 also includes at least one processor 630 forexecuting computer-readable and computer-executable instructions orsoftware stored in the storage device 610 or non-transitorycomputer-readable media 620 and other programs for controlling systemhardware. Virtualization may be employed in the computing device 600 sothat infrastructure and resources in the computing device 600 may beshared dynamically. For example, a virtual machine may be provided tohandle a process running on multiple processors so that the processappears to be using only one computing resource rather than multiplecomputing resources. Multiple virtual machines may also be used with oneprocessor.

A user may interact with the computing device 600 through an outputdevice 640, such as a screen or monitor, which may display one or moreuser interfaces provided in accordance with some embodiments. The outputdevice 640 may also display other aspects, elements or information ordata associated with some embodiments. The computing device 600 mayinclude other I/O devices 650 for receiving input from a user, forexample, a keyboard, a joystick, a game controller, a pointing device(e.g., a mouse, a user's finger interfacing directly with atouch-sensitive display device, etc.), or any suitable user interface.The computing device 600 may include other suitable conventional I/Operipherals. The computing device 600 includes or is operatively coupledto various suitable devices for performing one or more of the aspects asvariously described in this disclosure.

The computing device 600 may run any operating system, such as any ofthe versions of Microsoft® Windows® operating systems, the differentreleases of the Unix and Linux operating systems, any version of theMacOS® for Macintosh computers, any embedded operating system, anyreal-time operating system, any open source operating system, anyproprietary operating system, any operating systems for mobile computingdevices, or any other operating system capable of running on thecomputing device 600 and performing the operations described in thisdisclosure. In an embodiment, the operating system may be run on one ormore cloud machine instances.

In other embodiments, the functional components/modules may beimplemented with hardware, such as gate level logic (e.g., FPGA) or apurpose-built semiconductor (e.g., ASIC). Still other embodiments may beimplemented with a microcontroller having a number of input/output portsfor receiving and outputting data, and a number of embedded routines forcarrying out the functionality described in this disclosure. In a moregeneral sense, any suitable combination of hardware, software, andfirmware can be used, as will be apparent.

As will be appreciated in light of this disclosure, the various modulesand components of the system, such as the VR application 140, the GUI142, the user interface 112, the interaction analysis application 192,or any combination of these, is implemented in software, such as a setof instructions (e.g., HTML, XML, C, C++, object-oriented C, JavaScript,Java, BASIC, etc.) encoded on any computer readable medium or computerprogram product (e.g., hard drive, server, disc, or other suitablenon-transitory memory or set of memories), that when executed by one ormore processors, cause the various methodologies provided in thisdisclosure to be carried out. It will be appreciated that, in someembodiments, various functions and data transformations performed by theuser computing system, as described in this disclosure, can be performedby similar processors or databases in different configurations andarrangements, and that the depicted embodiments are not intended to belimiting. Various components of this example embodiment, including thecomputing device 600, may be integrated into, for example, one or moredesktop or laptop computers, workstations, tablets, smart phones, gameconsoles, set-top boxes, or other such computing devices. Othercomponentry and modules typical of a computing system, such asprocessors (e.g., central processing unit and co-processor, graphicsprocessor, etc.), input devices (e.g., keyboard, mouse, touch pad, touchscreen, etc.), and operating system, are not shown but will be readilyapparent.

Numerous embodiments will be apparent in light of the presentdisclosure, and features described herein can be combined in any numberof configurations. One example embodiment provides acomputer-implemented method of identifying a user of a virtual realitydevice. The method includes receiving, from at least one virtual realitydevice, first user interaction data representing a first plurality ofinteractions between a first user and the at least one virtual realitydevice during a first user visit, where the at least one virtual realitydevice is configured to generate realistic images, sounds and/or othersensations that replicate a real or imagined environment. The methodfurther includes a step for generating a first unique visitorfingerprint based on the first user interaction data; receiving, fromthe at least one virtual reality device, second user interaction datarepresenting a second plurality of interactions between a second userand the at least one virtual reality device during a second user visitthat is different from the first user visit; a step for generating asecond unique visitor fingerprint based on the second user interactiondata; comparing the first and second unique visitor fingerprints; anddetermining whether or not the second user is the same as the first userbased on the comparison. In some cases, the method includes generatingan estimated total number of unique users of the at least one virtualreality device based on the first and second unique visitorfingerprints. In some cases, the method includes generating an estimatedtotal number of virtual reality devices used by each unique user basedon the first and second unique visitor fingerprints. In some cases, themethod includes generating a path representing a usage pattern by eachunique user across two or more virtual reality devices based on thefirst and second unique visitor fingerprints. In some cases, the methodincludes personalizing an experience for the second user using the atleast one virtual reality device based on a determination that thesecond user is the same as the first user. In some cases, the methodincludes applying one or more user preferences for the second user tothe at least one virtual reality device based on a determination thatthe second user is the same as the first user. In some cases, the firstplurality of user interactions includes at least one of: head movement;hand movement; eye movement; biometric information; head movementdetection sensitivity; scroll speed; user interface-to-functionmappings; headphone volume; microphone volume; screen brightness; adevice configuration setting; and an application setting. In some cases,generating at least one of the first and second unique visitorfingerprints based on the first and second user interaction data,respectively, includes determining one or more available use features ofthe virtual reality device; determining which of the one or moreavailable use features are useful for generating one or both of thefirst and second visitor fingerprints; combining the useful use featuresinto one or both of the first and second visitor fingerprints; andfinding a subset of use features that describes a range over whichcomparison of one or both of the first and second visitor fingerprintscan be successfully made, wherein the subset of use features is used tocompare the first and second visitor fingerprints. Another exampleembodiment provides a non-transitory computer program product havinginstructions encoded thereon that when executed by one or more computerprocessors cause the one or more computer processors to perform aprocess such as set forth in this paragraph.

The foregoing description and drawings of various embodiments arepresented by way of example only. These examples are not intended to beexhaustive or to limit the invention to the precise forms disclosed.Alterations, modifications, and variations will be apparent in light ofthis disclosure and are intended to be within the scope of the inventionas set forth in the claims.

What is claimed is:
 1. A computer-implemented method of identifying auser of a virtual reality device, the method comprising: receiving, fromat least one virtual reality device, first user interaction datarepresenting a first plurality of interactions between a first user andthe at least one virtual reality device during a first user visit, theat least one virtual reality device configured to generate at least oneof realistic images, sounds and other sensations that replicate a realor imagined environment; a step for generating a first unique visitorfingerprint based on the first user interaction data; receiving, fromthe at least one virtual reality device, second user interaction datarepresenting a second plurality of interactions between a second userand the at least one virtual reality device during a second user visitthat is different from the first user visit; a step for generating asecond unique visitor fingerprint based on the second user interactiondata; comparing the first and second unique visitor fingerprints;determining whether or not the second user is the same as the first userbased on the comparison; and at least one of: generating an estimatedtotal number of unique users of the at least one virtual reality devicebased on the first and second unique visitor fingerprints; generating anestimated total number of virtual reality devices used by each uniqueuser based on the first and second unique visitor fingerprints; andgenerating a path representing a usage pattern by each unique useracross two or more virtual reality devices based on the first and secondunique visitor fingerprints.
 2. The method of claim 1, furthercomprising: personalizing an experience for the second user using the atleast one virtual reality device based on a determination that thesecond user is the same as the first user.
 3. The method of claim 1,further comprising: applying one or more user preferences for the seconduser to the at least one virtual reality device based on a determinationthat the second user is the same as the first user.
 4. The method ofclaim 1, wherein the first plurality of user interactions includes atleast one of: head movement; hand movement; eye movement; biometricinformation; head movement detection sensitivity; scroll speed; userinterface-to-function mappings; headphone volume; microphone volume;screen brightness; a device configuration setting; and an applicationsetting.
 5. The method of claim 1, wherein generating at least one ofthe first and second unique visitor fingerprints based on the first andsecond user interaction data, respectively, includes: determining one ormore available use features of the virtual reality device; determiningwhich of the one or more available use features are useful forgenerating one or both of the first and second visitor fingerprints;combining the useful use features into one or both of the first andsecond visitor fingerprints; and finding a subset of use features thatdescribes a range over which comparison of one or both of the first andsecond visitor fingerprints can be successfully made, wherein the subsetof use features is used to compare the first and second visitorfingerprints.
 6. A system for identifying a user of a virtual realitydevice, the system comprising: a storage; and a processor operativelycoupled to the storage, the processor configured to execute instructionsstored in the storage that when executed cause the processor to carryout a process including receiving, from at least one virtual realitydevice, first user interaction data representing a first plurality ofinteractions between a first user and the at least one virtual realitydevice during a first user visit, the at least one virtual realitydevice configured to generate at least one of realistic images, soundsand other sensations that replicate a real or imagined environment;generating a first unique visitor fingerprint based on the first userinteraction data; receiving, from the at least one virtual realitydevice, second user interaction data representing a second plurality ofinteractions between a second user and the at least one virtual realitydevice during a second user visit that is different from the first uservisit; generating a second unique visitor fingerprint based on thesecond user interaction data; comparing the first and second uniquevisitor fingerprints; and determining whether or not the second user isthe same as the first user based on the comparison, wherein generatingat least one of the first and second unique visitor fingerprints basedon the first and second user interaction data, respectively includes:determining one or more available use features of the virtual realitydevice; determining which of the one or more available use features areuseful for generating one or both of the first and second visitorfingerprints; combining the useful use features into one or both of thefirst and second visitor fingerprints; and finding a subset of usefeatures that describes a range over which comparison of one or both ofthe first and second visitor fingerprints can be successfully made,wherein the subset of use features is used to compare the first andsecond visitor fingerprints.
 7. The system of claim 6, wherein theprocess further comprises: generating, by the processor, an estimatedtotal number of unique users of the at least one virtual reality devicebased on the first and second unique visitor fingerprints.
 8. The systemof claim 6, wherein the process further comprises: generating, by theprocessor, an estimated average number of unique users of each virtualreality device based on the first and second unique visitorfingerprints.
 9. The system of claim 6, wherein the process furthercomprises: generating, by the processor, a path representing a usagepattern by each unique user across two or more virtual reality devicesbased on the first and second unique visitor fingerprints.
 10. Thesystem of claim 6, wherein the process further comprises: personalizing,by the processor, an experience for the second user using the at leastone virtual reality device based on a determination that the second useris the same as the first user.
 11. The system of claim 6, wherein theprocess further comprises: applying, by the processor, one or more userpreferences for the second user to the at least one virtual realitydevice based on a determination that the second user is the same as thefirst user.
 12. A non-transitory computer readable medium havinginstructions encoded thereon that when executed by one or more computerprocessors cause the one or more computer processors to perform aprocess comprising: receiving, from at least one virtual reality device,first user interaction data representing a first plurality ofinteractions between a first user and the at least one virtual realitydevice during a first user visit, the at least one virtual realitydevice configured to generate at least one of realistic images, soundsand other sensations that replicate a real or imagined environment;generating a first unique visitor fingerprint based on the first userinteraction data; receiving, from the at least one virtual realitydevice, second user interaction data representing a second plurality ofinteractions between a second user and the at least one virtual realitydevice during a second user visit that is different from the first uservisit; generating a second unique visitor fingerprint based on thesecond user interaction data; comparing the first and second uniquevisitor fingerprints; determining whether or not the second user is thesame as the first user based on the comparison; and at least one of:generating an estimated total number of unique users of the at least onevirtual reality device based on the first and second unique visitorfingerprints; generating an estimated average number of unique users ofeach virtual reality device based on the first and second unique visitorfingerprints; and generating an estimated total number of virtualreality devices used by each unique user based on the first and secondunique visitor fingerprints.
 13. The non-transitory computer readablemedium of claim 12, wherein the process further comprises: personalizingan experience for the second user using the at least one virtual realitydevice based on a determination that the second user is the same as thefirst user.
 14. The non-transitory computer readable medium of claim 12,wherein the process further comprises: generating a path representing ausage pattern by each unique user across two or more virtual realitydevices based on the first and second unique visitor fingerprints. 15.The non-transitory computer readable medium of claim 12, wherein theprocess further comprises: personalizing an experience for the seconduser using the at least one virtual reality device based on adetermination that the second user is the same as the first user. 16.The non-transitory computer readable medium of claim 12, wherein theprocess further comprises: applying one or more user preferences for thesecond user to the at least one virtual reality device based on adetermination that the second user is the same as the first user. 17.The non-transitory computer readable medium of claim 12, whereingenerating at least one of the first and second unique visitorfingerprints based on the first and second user interaction data,respectively, includes: determining one or more available use featuresof the virtual reality device; determining which of the one or moreavailable use features are useful for generating one or both of thefirst and second visitor fingerprints; combining the useful use featuresinto one or both of the first and second visitor fingerprints; andfinding a subset of use features that describes a range over whichcomparison of one or both of the first and second visitor fingerprintscan be successfully made, wherein the subset of use features is used tocompare the first and second visitor fingerprints.